"""
    仿射变换包括平移、旋转、缩放以及剪切等操作
"""

import cv2

img = cv2.imread('../images/text.png')
h, w, _ = img.shape

# 进行仿射变换
# 获取旋转矩阵
M = cv2.getRotationMatrix2D(center=(w / 2, h / 2),  # 旋转的中心点坐标
                            angle=15,  # 旋转的角度，逆时针为正，顺时针为负
                            scale=0.7)  # 缩放比例

# 进行变换
warp_img = cv2.warpAffine(src=img,   # 源图像
                          M=M,   # 旋转矩阵
                          dsize=(w, h),  # 输出图像的大小
                          flags=cv2.INTER_LINEAR,  # 插值方法,默认为INTER_LINEAR(双线性插值)
                          borderMode=cv2.BORDER_CONSTANT,  # 边界填充模式,默认为BORDER_CONSTANT(常数边界)
                          borderValue=(255, 255, 255)  # 常数边界填充值,默认为0,黑色
                          )

cv2.imshow('warp img', warp_img)
cv2.waitKey(0)
cv2.imwrite('../images/warp_text.png', warp_img)
